package com.dlc.shop.dao;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.dlc.shop.bean.model.NotifyLog;
import com.dlc.shop.bean.param.OrderParam;
import com.dlc.shop.common.util.PageParam;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *
 *
 * @author lhd
 * @date 2020-07-01 15:44:27
 */
public interface NotifyLogMapper extends BaseMapper<NotifyLog> {

    /**
     * 分页获取消息日志
     * @param page 分页参数
     * @param orderParam 订单参数
     * @return 消息日志分页数据
     */
    IPage<NotifyLog> pageByParam(PageParam<NotifyLog> page, @Param("orderParam") OrderParam orderParam);

    /**
     * 根据订单号查询是否发送过催付消息
     * @param orderNumber 订单号
     * @return 催付消息数
     */
    Integer countMsgNum(@Param("orderNumber") String orderNumber);

    /**
     * 获取还未发送的消息列表
     * @return 消息列表
     */
    List<NotifyLog> listUnSendMsgList();

    /**
     * 根据消息参数分页查询消息日志
     * @param page
     * @param notifyLog
     * @return
     */
    IPage<NotifyLog> pageByNotifyLogParam(@Param("page") PageParam<NotifyLog> page, @Param("notifyLog") NotifyLog notifyLog);

    /**
     * 消息批量设置成已读状态
     * @param logIds
     */
    void isReadByIds(@Param("logIds") List<Long> logIds);

    /**
     * 全部消息标为已读
     * @param shopId
     */
    void isReadByShopId(@Param("shopId") Long shopId);
}
